package ca.mcgill.model.implementation;

import java.util.List;

import ca.mcgill.model.functional.AsynchronousFSMsNetwork;

public class ImplementationModel {

	private List<Task> tasks;

	private List<Transaction> transactions;

	private AsynchronousFSMsNetwork fsmNetwork;

	public ImplementationModel(List<Task> tasks) {
		this.tasks = tasks;
	}

	public ImplementationModel(AsynchronousFSMsNetwork fsmNetwork,
			List<Task> tasks) {
		this.fsmNetwork = fsmNetwork;
		this.tasks = tasks;
	}

	public ImplementationModel(AsynchronousFSMsNetwork fsmNetwork,
			List<Task> tasks, List<Transaction> transactions) {
		this.fsmNetwork = fsmNetwork;
		this.tasks = tasks;
		this.transactions = transactions;
	}

	public List<Task> getTasks() {
		return tasks;
	}

	public void setTasks(List<Task> tasks) {
		this.tasks = tasks;
	}

	public void addTask(Task task) {
		this.tasks.add(task);
	}

	public void removeTask(Task task) {
		this.tasks.remove(task);
	}

	public void addAllTasks(List<Task> tasksToAdd) {
		this.tasks.addAll(tasksToAdd);
	}

	public AsynchronousFSMsNetwork getImplementedNetwork() {
		return this.fsmNetwork;
	}

	public List<Transaction> getTransactions() {
		return this.transactions;
	}

	public void setTransactions(List<Transaction> transactions) {
		this.transactions = transactions;
	}

	public void addTransaction(Transaction transaction) {
		this.transactions.add(transaction);
	}
}
